/**
 * Copyright(c) 2010 Ceno Techonologies Co., Ltd.
 *
 * History:
 *   15-10-28 下午7:38 Created by lyyang
 */
package com.jade.bss.weixin.impl;

import java.util.List;
import javax.ejb.TransactionAttribute;
import javax.inject.Inject;
import javax.inject.Named;

import com.jade.bss.weixin.WeixinApp;
import com.jade.bss.weixin.WeixinAppDao;
import com.jade.bss.weixin.WeixinAppManager;
import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.util.PagingList;
import org.springframework.transaction.annotation.Transactional;

@Named ("bss_weixinAppManager")
public class WeixinAppManagerImpl implements WeixinAppManager
{
    private WeixinAppDao weixinAppDao;


    @Inject
    public void setWeixinAppDao(@Named ("bss_weixinAppDao") WeixinAppDao weixinAppDao)
    {
        this.weixinAppDao = weixinAppDao;
    }

    @TransactionAttribute
    @Transactional (rollbackFor = Throwable.class)
    public long add(WeixinApp weixinApp)
    {
        return weixinAppDao.add(weixinApp);
    }

    @TransactionAttribute
    @Transactional (rollbackFor = Throwable.class)
    public void update(WeixinApp weixinApp)
    {
        weixinAppDao.update(weixinApp);
    }

    @TransactionAttribute
    @Transactional (rollbackFor = Throwable.class)
    public void remove(WeixinApp weixinApp)
    {
        weixinAppDao.remove(weixinApp);
    }

    @TransactionAttribute
    @Transactional (rollbackFor = Throwable.class)
    public void remove(long... ids)
    {
        for (long id : ids) {
            WeixinApp weixinApp = get(id);
            if (weixinApp != null) {
                remove(weixinApp);
            }
        }
    }

    public WeixinApp get(long customerId)
    {
        return weixinAppDao.get(customerId);
    }

    public PagingList<WeixinApp> query(Criteria criteria)
    {
        return weixinAppDao.query(criteria);
    }

    public List<WeixinApp> list(Criteria criteria)
    {
        return weixinAppDao.list(criteria);
    }
}